﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data;
using System.Data.SqlClient;



namespace CapaDatos
{
    public class DPlanContable
    {
        private int _Idplancontable;

        public int Idplancontable
        {
          get { return _Idplancontable; }
          set { _Idplancontable = value; }
        }


        private string _Codigo;

        public string Codigo
        {
            get { return _Codigo; }
            set { _Codigo = value; }
        }

        private string _Descripcion;

        public string Descripcion
        {
          get { return _Descripcion; }
          set { _Descripcion = value; }
        }

        private string _TextoBuscar;
        public string TextoBuscar
        {
            get { return _TextoBuscar; }
            set { _TextoBuscar = value; }
        }


        //Constructor Vacío
        public DPlanContable()
        {

        }
        //Constructor con parámetros
        public DPlanContable(int idplancomptable, string codigo, string descripcion, string textobuscar)
        {
            this.Idplancontable = idplancomptable;
            this.Codigo = codigo;
            this.Descripcion = descripcion;
            this.TextoBuscar = textobuscar;
        }


        //Método Insertar

        public string Insertar(DPlanContable PlanContable)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spinsertar_plancontable";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdplancontable = new SqlParameter();
                ParIdplancontable.ParameterName = "@idplancontable";
                ParIdplancontable.SqlDbType = SqlDbType.Int;
                ParIdplancontable.Value = PlanContable.Idplancontable;
                SqlCmd.Parameters.Add(ParIdplancontable);


                SqlParameter ParCodigo = new SqlParameter();
                ParCodigo.ParameterName = "@codigo";
                ParCodigo.SqlDbType = SqlDbType.VarChar;
                ParCodigo.Size = 11;
                ParCodigo.Value = PlanContable.Codigo;
                SqlCmd.Parameters.Add(ParCodigo);

                SqlParameter ParDescripcion = new SqlParameter();
                ParDescripcion.ParameterName = "@descripcion";
                ParDescripcion.SqlDbType = SqlDbType.VarChar;
                ParDescripcion.Size = 100;
                ParDescripcion.Value = PlanContable.Descripcion;
                SqlCmd.Parameters.Add(ParDescripcion);

                //Ejecutamos nuestro comando

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";


            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;

        }


        //Método Mostrar
       public DataTable Mostrar()
        {
            DataTable DtResultado = new DataTable("Contable");
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spmostrar_plancontable";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
                SqlDat.Fill(DtResultado);

            }
            catch (Exception ex)
            {
                DtResultado = null;
            }
            return DtResultado;

        }
       //Método BuscarNombre  
       public DataTable BuscarCuenta(DPlanContable PLanContable)
       {
           DataTable DtResultado = new DataTable("plancontable");
           SqlConnection SqlCon = new SqlConnection();
           try
           {
               SqlCon.ConnectionString = Conexion.Cn;
               SqlCommand SqlCmd = new SqlCommand();
               SqlCmd.Connection = SqlCon;
               SqlCmd.CommandText = "spbuscar_plan_contable";
               SqlCmd.CommandType = CommandType.StoredProcedure;

               SqlParameter ParTextoBuscar = new SqlParameter();
               ParTextoBuscar.ParameterName = "@textobuscar";
               ParTextoBuscar.SqlDbType = SqlDbType.VarChar;
               ParTextoBuscar.Size = 50;
               ParTextoBuscar.Value = PLanContable.TextoBuscar;
               SqlCmd.Parameters.Add(ParTextoBuscar);

               SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
               SqlDat.Fill(DtResultado);

           }
           catch (Exception ex)
           {
               DtResultado = null;
           }
           return DtResultado;

       }


        }



    }

